1. Field of the Invention
The present invention generally relates to controlling access to system resources and, more specifically, to controlling application program access to physical resources in a multiple application environment.
2. Description of the Related Art
Cable television operators and their equipment suppliers participate in developing various standards and specifications to enable rapid implementation of new applications and services at low cost. One result of this effort is the OpenCable platform, which includes specifications for both hardware and middle-ware that integrate the consumer's and operator's hardware. The middle-ware software layer specifications, referred to as the OpenCable Applications Platform (OCAP), provides for standardized application programming interfaces (APIs) that enable different hardware devices to operate correctly in a cable system. In practice the application programming interfaces control the operations of the physical resources of the platform hardware.
Using APIs to control the physical resources of platform hardware has proven to be highly beneficial. In fact, a given physical resource often can be controlled by different application programming interfaces or by different application programs that are associated with the application programming interfaces by setting up multiple resource proxies (i.e., software stand-ins for a physical resource). An application program interacts with a particular resource proxy, which proxy then controls a corresponding physical resource. A given physical resource can have multiple proxies, thus allowing multiple applications to operate simultaneously.
While useful, having multiple application programs simultaneously interacting with multiple physical resource proxies can lead to various problems and conflict. For example, if one application program requires a physical resource to operate one way while another application program requires the physical resource to operate in some other way, incorrect performance will likely result. Furthermore, some application programs require exclusive access to a physical resource for correct performance. A way to ensure this it to have only one resource proxy per physical resource which, unfortunately, limits overall system performance.